/** 
* A Visitor osztalybol szarmazik. Felelos a kincskereso letrehozasaert, implementalja a mozgatasaert felelos Mozgo interfeszt.
*/



public class Kincskereso extends CellaElem implements Mozgo
{
    private int szerzettGy;
    private Bomba b;
    
    public Kincskereso() {
    	szerzettGy = 0;
    	b = null;
    	Szkeleton.Message("Kincskereso letrejott..");
    }
    
    /**
	*Utkozes eseten odalephet-e.
	*
	* @return boolean
	* @param x
	*/
    public boolean ralephete(CellaElem x)
    {
    	Szkeleton.Start("Kincskereso", "ralephete");
		Visitor v = x.createVisitor();
		Szkeleton.Finish("Kincskereso", "ralephete");
		return(v.utkozik(this));
    }
	
	/**
	* Gyemantok szamat noveli.
	*/
    public void novelGy()
    {
    	Szkeleton.Start("Kincskereso", "novelGY");
    	this.szerzettGy++;
    	Szkeleton.Finish("Kincskereso", "novelGY");
    }
	
	/**
	* Bombara valo ralepeskor ez a fuggveny meghivodni.
	*
	* @param b
	*/
    public void felvesz(Bomba b)
    {
		Szkeleton.Start("Kincskereso", "felvesz");
		this.b = b;
    	Szkeleton.Finish("Kincskereso", "felvesz");
    
    }
    
    public boolean lerak(int irany) 
    {
    	if(this.b == null) {
    		return false;
    	}
    	this.hova = irany;
    	this.mit = this.b;
    	this.kovetkezoLepes = Lepes.LERAK;
    	return true;
    }
	
	/**
	* Kincskereso halalat vezenyli le.
	*/
    public void meghal()
    {
    	Game.jatekVege();
    	this.mezo.setCellaElem(null);
    }
	
	/**
	* Utkozes lebonyolitasat inditja el.
	*
	* @return Visitor
	*/
	public Visitor createVisitor() {
		Szkeleton.Start("Kincskereso", "createVisitor");
		KincskeresoUtkozik kv = new KincskeresoUtkozik(this);
		Szkeleton.Finish("Kincskereso", "createVisitor");
		return kv;
	}
	
	/**
	* Felfele lepes kerese.
	*/	
	public void felfeleLep() {
		Szkeleton.Start("Kincskereso", "felfeleLep");
		kovetkezoLepes = Lepes.FELFELE;
		Szkeleton.Finish("Kincskereso", "felfeleLep");
	}
	
	/**
	* Lefele lepes kerese.
	*/	
	public void lefeleLep() {
		Szkeleton.Start("Kincskereso", "lefeleLep");
		kovetkezoLepes = Lepes.LEFELE;
		Szkeleton.Finish("Kincskereso", "lefeleLep");
	}
	
	/**
	* Balrafel lepes kerese.
	*/	
	public void balraFelLep() {
		Szkeleton.Start("Kincskereso", "balraFelLep");
		kovetkezoLepes = Lepes.BALRAFEL;
		Szkeleton.Finish("Kincskereso", "balraFelLep");
	}
	
	/**
	* Balrale lepes kerese.
	*/	
	public void balraLeLep() {
		Szkeleton.Start("Kincskereso", "balraLeLep");
		kovetkezoLepes = Lepes.BALRALE;
		Szkeleton.Finish("Kincskereso", "balraLeLep");
	}
	
	/**
	* Jobbrafel lepes kerese.
	*/	
	public void jobbraFelLep() {
		Szkeleton.Start("Kincskereso", "jobbraFelLep");
		kovetkezoLepes = Lepes.JOBBRAFEL;	
		Szkeleton.Finish("Kincskereso", "jobbraFelLep");
	}
	
	/**
	* Jobbrale lepes kerese.
	*/	
	public void jobbraLeLep() {
		Szkeleton.Start("Kincskereso", "jobbraLeLep");
		kovetkezoLepes = Lepes.JOBBRALE;	
		Szkeleton.Finish("Kincskereso", "jobbraLeLep");
	}
}
